package servlets;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import beans.TutorBean;
import beans.UtilBean;
import dao.interfaces.LibroDao;
import dao.interfaces.TutorDao;
import dao.interfaces.UtilDao;
import daofactory.DaoFactory;


@WebServlet("/GenerarListaUtil")
public class GenerarListaUtil extends HttpServlet {
	private static final long serialVersionUID = 1L;
       

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		try {	
			
		TutorBean datosTutor=new TutorBean();
		String idPersona=request.getParameter("txtIdPersona");
		datosTutor.setIdPersona(Integer.parseInt(idPersona));
			
		DaoFactory dao = DaoFactory.getDAOFactory(DaoFactory.MYSQL);
		UtilDao utildao  = dao.getUtilDao();
		int indiceLista= utildao.buscarListaTutor(idPersona);
		
			if(indiceLista>0){		
				
				request.setAttribute("mensaje", "Lista de Utiles ya generada");
				getServletContext().getRequestDispatcher("/mensajeTutor.jsp")
													.forward(request, response);
			}else{		
				
				DaoFactory daoTutor = DaoFactory.getDAOFactory(DaoFactory.MYSQL);		
				TutorDao tutorDao = daoTutor.getTutorDao();
				TutorBean tutorBean = tutorDao.buscarTutor(datosTutor.getIdPersona());
				
				request.setAttribute("grado", tutorBean.getGrado());
				request.setAttribute("seccion", tutorBean.getSeccion());
										
				//OBTENCION DE LIRBOS PARA LOS COMBOX
				DaoFactory daoLibro = DaoFactory.getDAOFactory(DaoFactory.MYSQL);
				LibroDao libroDao = daoLibro.getLibroDao();
				//LISTA DE LIBROS		
				ArrayList<String> libroMatematica = libroDao.buscarLibro(tutorBean.getGrado(),"Matematica");
				ArrayList<String> libroComunicacion = libroDao.buscarLibro(tutorBean.getGrado(),"Comunicacion");
				ArrayList<String> libroRazonamientoMatematico = libroDao.buscarLibro(tutorBean.getGrado(),"RazonamientoMatematico");					
				ArrayList<String> libroRazonamientoVerbal = libroDao.buscarLibro(tutorBean.getGrado(),"RazonamientoVerbal");
				ArrayList<String> libroPersonalSocial = libroDao.buscarLibro(tutorBean.getGrado(),"PersonalSocial");
				ArrayList<String> libroCienciasNaturales = libroDao.buscarLibro(tutorBean.getGrado(),"CienciasNaturales");
				ArrayList<String> libroReligion = libroDao.buscarLibro(tutorBean.getGrado(),"Religion");

				//ENVIO DE LIBROS
				request.setAttribute("idTutor", tutorBean.getIdTutor());
				request.setAttribute("idPersona", tutorBean.getIdPersona());			
				request.setAttribute("libroMatematica", libroMatematica);
				request.setAttribute("libroComunicacion", libroComunicacion);
				request.setAttribute("libroRazonamientoMatematico", libroRazonamientoMatematico);
				request.setAttribute("libroRazonamientoVerbal", libroRazonamientoVerbal);
				request.setAttribute("libroPersonalSocial", libroPersonalSocial);
				request.setAttribute("libroCienciasNaturales", libroCienciasNaturales);
				request.setAttribute("libroReligion", libroReligion);
				
				getServletContext().getRequestDispatcher("/RegistroListaUtiles.jsp").forward(request, response);
			}	
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		PrintWriter out = response.getWriter();
		try {
			HttpSession sesion=request.getSession();			
			sesion.getAttribute("idPersona");			
			sesion.getAttribute("fecha");	
			sesion.getAttribute("idTutor");
			
			UtilBean util=new UtilBean();
			util.setIdPersona(Integer.parseInt(sesion.getAttribute("idPersona").toString()));
			util.setFecha(sesion.getAttribute("fecha").toString());
			util.setIdTutor(sesion.getAttribute("idTutor").toString());
			util.setEstado("P");
			
			/*ESTADO DE LA LISTA
			*PENDIENTE   P
			*APROBADO    A
			*DESAPROBADO D
			*/
			
			//OBTIENE TODOS LOS DATOS PARA LA INSERCION						
			//OBTENEMOS LOS LIBROS
			util.setLibLenguaje(request.getParameter("cboComunicacion"));
			util.setLibMatematica(request.getParameter("cboMatematica"));
			util.setLibCienciasNaturales(request.getParameter("cboCienciasNaturales"));
			util.setLibPersonalSocial(request.getParameter("cboPersonalSocial"));
			util.setLibRazonamientoMatematico(request.getParameter("cboRazonamientoMatematico"));
			util.setLibRazonamientoVerbal(request.getParameter("cboRazonamientoVerbal"));
			util.setLibReligion(request.getParameter("cboReligion"));
						
			// OBTENEMOS LOS CUADERNOS
			util.setCantCuadernoCuadriculao(Integer.parseInt(request.getParameter("txtCuadriculado")));
			util.setCantCuadernoBlockNotas(Integer.parseInt(request.getParameter("txtBlockNotas")));
			util.setCantCuadernoDibujo(Integer.parseInt(request.getParameter("txtDibujo")));
			util.setCantCuadernoRayado(Integer.parseInt(request.getParameter("txtRayado")));
			util.setCantCuadernoTripleRaya(Integer.parseInt(request.getParameter("txtTripleRaya")));
			util.setCantCuadernoTripleRaya(Integer.parseInt(request.getParameter("txtTripleRaya")));
			
		 	// OBTENEMOS LOS UTILES DE ESCRITORIO
			util.setCantLimpiaTipo(Integer.parseInt(request.getParameter("txtLimpiaTipo")));
			util.setCantCinta(Integer.parseInt(request.getParameter("txtCinta")));						
			util.setCantMicas(Integer.parseInt(request.getParameter("txtMicas")));						
			util.setCantPlumones(Integer.parseInt(request.getParameter("txtPlumones")));					
			util.setCantPapelBond(Integer.parseInt(request.getParameter("txtPapelBond")));
			util.setCantHojasColores(Integer.parseInt(request.getParameter("txtHojasColores")));
			util.setCantIndeleble(Integer.parseInt(request.getParameter("txtIndeleble")));
						
			//OBTENEMOS LOS UTILES ASEO		
			util.setCantLimpiador(Integer.parseInt(request.getParameter("txtLimpiador")));						
			util.setCantJabon(Integer.parseInt(request.getParameter("txtJabonLiquido")));					
			util.setCantToalla(Integer.parseInt(request.getParameter("txtToalla")));						
			util.setCantBolsa(Integer.parseInt(request.getParameter("txtBolsa")));
			
			if(validarCampos(util)){
				DaoFactory dao = DaoFactory.getDAOFactory(DaoFactory.MYSQL);
				UtilDao utilDatos = dao.getUtilDao();				
				int opcionGenerar= utilDatos.generarListaUtiles(util);
									
					if(opcionGenerar==1){
						
						request.setAttribute("mensaje", "Lista de utiles generada");
						getServletContext().getRequestDispatcher("/mensajeTutor.jsp")
															.forward(request, response);
					}else{
						request.setAttribute("mensaje", "No se pudo generar la lista de utiles");
						getServletContext().getRequestDispatcher("/mensajeTutor.jsp")
															.forward(request, response);					
					}
				
			}else{
				request.setAttribute("mensaje", "No se pudo generar la lista de utiles");
				getServletContext().getRequestDispatcher("/mensajeTutor.jsp")
													.forward(request, response);	
				//NO SE PUEDE GENERAR LISTASS				
			}
			
			} catch (Exception e) {
				out.print(e.getMessage());
			}		
	}


	public boolean validarCampos(UtilBean util){
		
		if(util!=null){		
			return true;			
		}else{
			
			return false;
		}
	
	}
	

}
